
package dlc.buscador;
import com.google.gson.Gson;
import dlc.indexado.ProcesarArchivos;
import dlc.persistencia.BaseDatos;
import dlc.scraping.Archivador;
import dlc.scraping.Scraping;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.jws.WebParam;

/**
 *
 * @author MAXI
 */
@WebService(serviceName = "BuscadorWS", targetNamespace="maxi")
public class BuscadorWS {

    @WebMethod(operationName = "hello")
    public String hello(@WebParam(name = "name") String txt) {
        return "Hello " + txt + " !";
    }
    
    @WebMethod(operationName = "IniciarBusqueda")
    public String iniciarBusqueda(@WebParam(name = "StringDeBusqueda") String busqueda)
    {
        Buscador buscador;
        try {
            buscador = new Buscador();
            Gson json = new Gson();
            String resultado = json.toJson(buscador.buscar(busqueda));
            return resultado;
            
        } catch (Exception ex) {
            return null;
        }
    }
    
    @WebMethod(operationName = "IniciarScraping")
    public String iniciarScraping( String link, String dir, int cantLeer)
    { 
        try
        {
            if( !link.isEmpty() && !dir.isEmpty())
            {
                Calendar cal = Calendar.getInstance();
                long t1 = cal.getTimeInMillis();
                Scraping h1 = new Scraping(link,t1,cantLeer);
                Archivador h2 = new Archivador(dir,1);
                h1.start();
                h2.start();
                return "El scraping ha comenzado";
            }
            else
                return "El inicio del sraping nose pudo comenzar debido a que faltan parametros";
            
        }
        catch(Exception e)
        {
            return "El inicio del scraping nose pudo comenzar debido a: "+ e.toString();
        }
    }
    @WebMethod(operationName = "IniciarIndexado")
    public String iniciarIndexado(String dir)
    { 
        try
        {
        
            BaseDatos dao = new BaseDatos(1);//parametro 1: resetea BD, 2:No resetea BD
               
            ProcesarArchivos ps = new ProcesarArchivos(dir);
            return "el inicio del indexado ha comenzado";
            
        }
        catch(Exception e)
        {
            return "El inicio del scraping nose pudo comenzar debido a: "+ e.toString();
        }
    }
}


